মডেল প্রশিক্ষণের সময় Accuracy এবং Loss মেট্রিক্সগুলোর মূল্যায়ন করা গুরুত্বপূর্ণ, কারণ এগুলি মডেলের পারফরম্যান্স এবং উন্নতি প্রদর্শন করে। মডেল প্রশিক্ষণের পরে, আপনি Accuracy এবং Loss এর গ্রাফ তৈরি করে মডেলের উন্নতি এবং overfitting/underfitting পর্যবেক্ষণ করতে পারেন।
Matplotlib এবং Seaborn হল জনপ্রিয় গ্রাফিং লাইব্রেরি যা দিয়ে আপনি সহজেই Loss এবং Accuracy এর ভিজুয়ালাইজেশন তৈরি করতে পারেন।
১. মডেল Accuracy এবং Loss Plot করার জন্য প্রয়োজনীয় লাইব্রেরি
প্রথমে নিশ্চিত করুন যে আপনার সিস্টেমে Matplotlib এবং Seaborn ইনস্টল করা আছে:
pip install matplotlib seaborn
২. Keras মডেল প্রশিক্ষণের পর Accuracy এবং Loss Visualize করা
ধরা যাক, আপনি একটি মডেল প্রশিক্ষণ করেছেন এবং history অবজেক্টটি পেয়েছেন, যা মডেল প্রশিক্ষণের সময় accuracy এবং loss এর মান ধারণ করে।
import matplotlib.pyplot as plt
import seaborn as sns
# মডেল প্রশিক্ষণের পর history অবজেক্ট
history = model.fit(x_train, y_train, epochs=10, validation_data=(x_test, y_test))
# Accuracy গ্রাফ
plt.figure(figsize=(12, 6))
plt.subplot(1, 2, 1)
plt.plot(history.history['accuracy'], label='Training Accuracy')
plt.plot(history.history['val_accuracy'], label='Validation Accuracy')
plt.title('Model Accuracy')
plt.xlabel('Epochs')
plt.ylabel('Accuracy')
plt.legend()
# Loss গ্রাফ
plt.subplot(1, 2, 2)
plt.plot(history.history['loss'], label='Training Loss')
plt.plot(history.history['val_loss'], label='Validation Loss')
plt.title('Model Loss')
plt.xlabel('Epochs')
plt.ylabel('Loss')
plt.legend()
plt.tight_layout()
plt.show()
৩. গ্রাফের ব্যাখ্যা
- Training Accuracy: মডেলটি প্রশিক্ষণের সময় যে accuracy অর্জন করেছে, তা প্রতি epoch এর জন্য দেখাবে।
- Validation Accuracy: মডেলটি প্রশিক্ষণ করার পর validation ডেটার উপর যে accuracy অর্জন করেছে তা দেখাবে। এটি overfitting এর চিহ্ন দেয় যদি validation accuracy প্রশিক্ষণের accuracy এর চেয়ে কম হয়।
- Training Loss: মডেলটি প্রশিক্ষণ করার সময় যে loss অর্জন করেছে, তা প্রতি epoch এর জন্য দেখাবে।
- Validation Loss: মডেলটি validation ডেটার উপর যে loss অর্জন করেছে, তা দেখাবে।
৪. Seaborn এর মাধ্যমে আরও উন্নত Visualization
Seaborn ব্যবহার করলে আপনি আরও সুন্দর এবং উন্নত ভিজুয়ালাইজেশন তৈরি করতে পারেন:
import seaborn as sns
# Training Accuracy গ্রাফ
plt.figure(figsize=(10, 5))
sns.lineplot(x=range(1, 11), y=history.history['accuracy'], label='Training Accuracy', color='blue')
sns.lineplot(x=range(1, 11), y=history.history['val_accuracy'], label='Validation Accuracy', color='orange')
plt.title('Model Accuracy')
plt.xlabel('Epochs')
plt.ylabel('Accuracy')
plt.legend()
plt.show()
# Training Loss গ্রাফ
plt.figure(figsize=(10, 5))
sns.lineplot(x=range(1, 11), y=history.history['loss'], label='Training Loss', color='blue')
sns.lineplot(x=range(1, 11), y=history.history['val_loss'], label='Validation Loss', color='orange')
plt.title('Model Loss')
plt.xlabel('Epochs')
plt.ylabel('Loss')
plt.legend()
plt.show()
৫. গ্রাফ থেকে কী বুঝতে পারবেন?
- Overfitting:
- যদি training accuracy বেড়ে যায় কিন্তু validation accuracy কমে যায়, তবে এটি overfitting নির্দেশ করতে পারে। এর মানে হলো মডেলটি প্রশিক্ষণ ডেটা খুব ভালোভাবে শিখে ফেলেছে, কিন্তু নতুন ডেটার (validation) উপর খারাপ পারফর্ম করছে।
- Underfitting:
- যদি training accuracy এবং validation accuracy দুটোই খুব কম থাকে, তবে মডেলটি যথেষ্ট ভালো শিখতে পারেনি এবং এটি underfitting এর একটি লক্ষণ হতে পারে।
- Ideal Scenario:
- একটি আদর্শ পরিস্থিতি হলো training accuracy এবং validation accuracy এর মধ্যে একটি ভালো সামঞ্জস্য থাকা এবং loss গ্রাফের মধ্যে প্রশিক্ষণ এবং validation loss এর মধ্যে ব্যবধান কম থাকা।
সারাংশ
- Accuracy এবং Loss মেট্রিক্সগুলি মডেলের পারফরম্যান্স মূল্যায়ন করার জন্য অত্যন্ত গুরুত্বপূর্ণ।
- Matplotlib এবং Seaborn এর মাধ্যমে আপনি সহজে এই মেট্রিক্সগুলির ভিজুয়ালাইজেশন তৈরি করতে পারেন এবং মডেলের আচরণ বুঝতে পারেন।
- Training accuracy এবং validation accuracy এর মধ্যে পার্থক্য দেখলে আপনি overfitting বা underfitting এর সূচক পেতে পারেন।
Read more